_zimfw_uninstall() {
  local zopt
  if (( _zprintlevel > 0 )) zopt='-v'
  local zuninstalls=(${ZIM_HOME}/modules/*(N/:t))
  # Uninstall all installed modules not in _zmodules and _zdisableds
  zuninstalls=(${${zuninstalls:|_zmodules}:|_zdisableds})
  if (( ${#zuninstalls} )); then
    _zimfw_print -PR %B${(F)zuninstalls}%b
    if (( _zprintlevel <= 0 )) || read -q "?Uninstall ${#zuninstalls} module(s) listed above [y/N]? "; then
      _zimfw_print
      command rm -rf ${zopt} ${ZIM_HOME}/modules/${^zuninstalls} || return 1
    fi
  fi
  _zimfw_print -P '<%= done %>Done with uninstall.'
}
